﻿// 5559. 摆放棋子.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>

/*
https://www.acwing.com/problem/content/5562/

给定一个 1×n 的方格棋盘。

其中，一些方格上没有棋子（用 0表示），一些方格上放有棋子（用 1表示）。

现在，你可以挑选棋盘中不超过 k个空方格，在其中放上棋子。

我们的目标是让棋盘中最长的连续相邻棋子段的长度尽可能大。

连续相邻棋子段：一段棋子连续相邻的排列在一起，中间没有空方格将它们隔开。

输出最长连续相邻棋子段的最大可能长度以及最终的棋盘盘面。

输入格式
第一行包含两个整数 n,k。

第二行包含 n个整数 a1,a2,…,an
，其中 ai 用来表示左起第 i 个方格的状态，0 表示方格上没有棋子，1 表示方格上有棋子。

输出格式
第一行输出一个整数，表示最长连续相邻棋子段的最大可能长度。

第二行输出一个可能的最终棋盘盘面。

如果答案不唯一，输出任意合理答案均可。

数据范围
前 6 个测试点满足 1≤n≤10。
所有测试点满足 1≤n≤3×105
，0≤k≤n，0≤ai≤1。

输入样例1：
7 1
1 0 0 1 1 0 1
输出样例1：
4
1 0 0 1 1 1 1
输入样例2：
10 2
1 0 0 1 0 1 0 1 0 1
输出样例2：
5
1 0 0 1 1 1 1 1 0 1
*/
int main()
{
    std::cout << "Hello World!\n";
}
 